﻿using System;


namespace LazyMapper.Core
{
    internal interface ITypeMapping
    {
        bool IsInitialized { get;  }
        int Key { get; }
        void Initialize(MapperInstance instance);
        bool IsMemberTypes(Type inputMemberType, Type outputMemberType);
        object MapValues(object input, object output);
        object Construct(object input, object output);
        void BuildListMapper(MapperInstance mapperInstance);
    }

    internal interface ITypeMapping<TInput, TOutput> : ITypeMapping
    {
        TOutput Construct(TInput input);
        TOutput MapValues(TInput input, TOutput output);
    }
}